1. Field of the Invention
The present invention relates to the recognition of handwritten electronic ink input in a computing device. Various examples of the invention are particularly suited to ordering and recognizing strokes and stroke segments including late strokes.
2. Description of Background Art
The use of graphical user interfaces has created a revolution in the field of computing devices. As an alternative to memorizing arbitrary or otherwise confusing commands, the individual may now manipulate software applications by simply controlling graphical objects representing their various functions and components. Rather than requiring an individual to delete a computer file with a delete command, for example, some operating systems (e.g., the Microsoft Windows® operating system) allow the individual to delete the file by dragging a graphical object representing the file to a graphical object having the appearance of a trash receptacle.
One conventional manner of manipulating software applications, controlling graphical objects rendered on a graphical user interface, or entering data involves the use of a keyboard and a pointing device, such as a mouse. The capability of manipulating software applications has been expanded, however, to allow the individual to input data through free-form data input methods, such as handwriting. For example, some software applications enable an individual to employ a stylus for writing on a digitizer, and the various data points measured by the digitizer are then collected and rendered as one or more strokes on a display. Because the strokes rendered from these data points resemble actual ink written with a pen, the data points are often referred to as electronic ink.
A stroke is a sequence of connected data points that are formed during the time period that the stylus is brought into contact with the digitizer and subsequently removed from the digitizer. Some software applications have the capacity to recognize shapes formed by the strokes by correlating the shape of a stroke with one or more specific characters. Examples of characters include alphabetic characters, whether from the Roman, Cyrillic, Arabic, Hebrew, or Greek alphabets, for example. Furthermore, a character may be a numeral, a punctuation mark, or one of the various symbols that are commonly utilized in written text, such as ″, ', (, &, @, ä, ĉ, or , for example. Groups of various characters may also form words. The software applications then convert the recognized shapes from one or more strokes into text data that corresponds with the characters or words. This recognition ability conveniently allows the individual to input text data into the computing device using the natural, familiar process of handwriting.
Characters generated through free-form data input methods may be formed from one or more strokes. Some characters are often formed with a single stroke, such as the characters “a”, “b”, and “c”. Other characters, however, are formed with multiple strokes, such as the characters “i” and “t”. When the individual forms words, which are combinations of characters, particularly through cursive writing, some words may be formed from a single stroke. As an example, the words “pen”, “cup”, and “dog” are generally formed from a single stroke when formed through cursive writing. Other words, however, are generally formed through multiple strokes. As an example, the words “pin”, “cut”, and “dot” each require two or more discrete strokes when formed through cursive writing. Accordingly, various characters and words (i.e., text data) may be formed through one or more discrete strokes when input through free-form data input methods.
One problem that has arisen with the use of electronic ink for the input of text data relates to the recognition of late strokes. A late stroke is a part of a character that has not been written in a conventional order during the writing of the character. An individual may delay a stroke, for example, to avoid removing the stylus from the digitizer, which would break or slow the flow of inputting text data. An example of a late stroke is the dot above the character “i”, which can be written immediately after the vertical bar of the character “i”, but is often written after the word, phrase, or sentence containing the character “i” has been written. That is, the individual will often form the dot above the character “i” following the formation of the remainder of the word, phrase, or sentence containing the character “i”. Additional examples of strokes that are often formed as late strokes are the horizontal bar on the character “t” and the accents on various French and German characters.
Another type of late stroke forms a whole character, but is inserted before or within a previously-formed stroke. For example, the apostrophe in the word “it's” is often inserted following formation of the character series “its”, particularly when formed through cursive writing. As further examples, an individual may insert a stroke that represents an opening quotation mark or an opening parenthesis following the formation of a sentence or phrase.
Because these strokes are late, it is often difficult to associate these late strokes with the other strokes to which they are related. For example, when a user crosses a “t” character with “-” stroke, it is difficult for many software applications to associate the “-” with the “t” as a result of the delay. Thus, instead of the recognized text accurately corresponding to the handwritten text, the text may include an additional “-” character after the text. Accordingly, there is a need for a method of analyzing and ordering strokes that will associate late strokes with previously-formed strokes to which the late strokes are related, so that the recognized text corresponding to the late strokes are accurately positioned.